/**** request.js ****/
// 导入axios
import axios from 'axios'
import router from '../router';

//1. 创建新的axios实例，
const service = axios.create({
	// 公共接口--这里注意后面会讲
	baseURL: "http://localhost",
	// 超时时间 单位是ms，这里设置了3s的超时时间
	timeout: 5 * 1000
})
// 2.请求拦截器
service.interceptors.request.use(config => {
	//发请求前做的一些处理，数据转化，配置请求头，设置token,设置loading等，根据需求去添加
	config.data = JSON.stringify(config.data); //数据转化,也可以使用qs转换
	config.headers = {
		'Content-Type': 'application/json' ,//配置请求头
		'Satoken': localStorage.getItem('token')
	}
	return config
}, error => {
	Promise.reject(error)
})

// 3.响应拦截器
service.interceptors.response.use(response => {
	const data = response.data
	if (data.code == 200 || data.code == 0) {
		return data
	}
	
	// 如果不是 200，根据异常状态处理
	console.log("请求异常", data)
	
	// 410 未登陆，跳转到登陆页 
	if (data.code == 410) {
		router.push('/sign-in');
		return data
	}
	
}, error => {
	/***** 处理结束 *****/
	//如果不需要错误处理，以上的处理过程都可省略
	return Promise.resolve(error.response)
})
//4.导入文件
export default service